1. Field of the Invention
The present invention relates to a method for the control of flows for point-to-point, point-to-multipoint, multipoint-to-point and multipoint-to-multipoint non-real time connections within an ATM switch with distributed architecture and storage at input.
2. Discussion of the Background
The communication networks known as ATM or asynchronous transfer mode networks enable the circulation of fixed length packets known as ATM cells consisting of a 5-byte header and a 48-byte body. The header contains in particular a logic channel identifier known as a VPI/VCI (or virtual path identification and virtual channel identifier) field that enables the routing of the cells in the switches that it encounters on its path between the sender user and the addressee user.
The applications capable of using ATM networks for the communication of their data are highly varied. Most of the applications capable of using ATM networks have their own format for their data elements: these may be for example IP format frames of the Internet protocol or else frames using the format of the MPEG (moving picture export group) format. The adaptation between the format of these application frames and the format of the ATM cells is done in a layer called an ATM adaptation layer or AAL. In particular, this layer is responsible for segmenting the frames into cells and conversely reassembling the cells received from the network into frames.
Some of the data flows conveyed, known as “real time flows” require that the transit time and the jitter to which the network subjects their cells should be the minimum. This case relates for example to telephone data. Other data flows, hereinafter called non-real time flows, for example electronic mail, do not have these constraints. The real time flows must benefit from a certain degree of priority within the network and, for this purpose, they are subjected to a preventive congestion control mechanism by means of the reservation of resources.
Several major classes of flows known as “service categories” are defined in the standards ([UIT-T.I.371], [AF TM4.0]) to take account of the different demands that users may make as regards the quality of the service that they seek for a desired flow, defined by service quality parameters such as: cell loss rate, transfer time, jitter, minimum bit rate, etc. and to take account of the different characteristics of the bit rate of this flow, formed by traffic parameters such as peak bit rate, mean bit rate, maximum size of a burst, etc.
The real-time flow comes within one of the categories known as CBR (constant bit rate) or VBRrt (variable bit rate—real time). The non-real-time flows come within one of the following categories known as UBR (unspecified bit rate) whose service quality is not the object of any requirement on the part of the user, VBRnrt (variable bit rate—non-real-time) whose statistical characteristics are known with sufficient precision to enable a guarantee with respect to the loss rate or available bit rate (ABR) for which a minimum bit rate is guaranteed or a low loss rate as a trade-off for an end-to-end flow control according to the indications of the network.
Any ATM switch, in the manner shown in FIG. 1a, implements four major sets of functions, an access function 1 to each port of an ATM switch, an ATM layer function 2, a switch fabric function 3 and a management function 4.
The access function 1 provides for the conversion of the ATM cells into the format that is suited to the transmission medium connected to said port and vice versa. This function makes it possible to present incoming cells to the ATM layer in a single format that is independent of the bit rate and the optical, electrical, radio or other type of technology of the transmission medium from which they come. The ports of a switch enable the connection of several switches together but they also enable the connection of a user of ATM services to a switch.
The processing operations to be implemented in the access function are described in a huge volume of standard-setting literature on the ANSI as well as the UTT and ATM Forum systems. The major classes of interface defined in these documents are:                The PDH (plesiochronous digital hierarchy) interface defined in the document UIT-T G.804, G.703.        The SDH (synchronous digital hierarchy) interface defined in the document UIT-T G.708, etc.        The SONET (synchronous optical network) interface defined in the document ANSI-T 1.105, etc.        The 25.6 Mbit/s IBM interface defined in the document af-phy-0040.000.        
The ATM layer function 2 combines several functions and especially the management of the cell headers, the translation of the VPI/VCI (virtual path identification and virtual channel identifier) logic channels, the processing of the OAM (operations, administration and maintenance) management cells, a major part of the management of the traffic known as traffic management including sub-functions known as UPC (usage parameter control), SCD (selective cell discard), EPD (early PDU discard), RM (resource management) cells, etc.
The processing operations to be implemented in the ATM layer function are described especially in the following standard documents of the UIT and the ATM Forum:                B-ISDN ATN Layer Specification [UIT-T I.361]        B-ISDN Operation and Maintenance Principles and Functions [UIT-T I.610]        Traffic Management Specification Version 4.0 [AF-TM 4.0]        
The switching or scrambling function 3 switches the cells from an input direction to one or more output directions, as a function of indications prepared by the ATM layer during the translation of the logic channels.
The management function 4 includes sub-functions such as: the local supervision of the switch (alarms, discovery of the configuration of the switch and of the local topology, management of versions, etc.), interfacing with the centralized supervision entity of the network, the interfacing needed to set up switched virtual circuits, etc.
For a more detailed description of some of these sub-functions, reference will be made to the standard-setting literature of the ATM Forum:                ATM User-Network Interface (UNI) Signalling Specification Version 4.0 (af-sig-0061.000)        Private Network-Network Interface Specification Version 1.0 (af-pnni-0055.000)        Integrated Layer Management Interface (af-ilmi-0065.000)        
These different functions are mutually interfaced as indicated here below. It must be noted that the management function behaves exactly like a user except that its connection to the ATM layer does not go through an external port of the switch and therefore does not require any access function. By contrast, the management function does process ATM cells alone but also messages which it must therefore segment and reassemble by means of an AAL (ATM adaptation layer) which is therefore an additional function: the adaptation function.
The ATM switches are often switches with centralized architecture or weakly distributed architecture, that is to say the functions of the switch itself are performed by a single hardware element that combines computation capacities formed by microprocessors, storage capacities formed by memories and capacities for routing the cells in the switch fabric. However, this concentration adversely affects the modular nature of the switch and its ability to remain functional when one of its constituent elements goes out of order.
According to a standard solution, the functions are distributed among distinct hardware elements that may, if necessary, be doubled to enable the pack-up of a faulty element of the same nature. These hardware elements are installed in the switch in sufficient numbers to cope with the processing load that is foreseeable as a function of the configuration of the network at this place. In practice, these elements are electronic component boards assembled in a tray and interfacing with one another by means of one or more data buses placed at the bottom of the tray. They define what is common called a “distributed architecture”.
Conventionally, the hardware architecture of a distributed ATM switch, as can be seen in FIG. 1b, distinguishes between three types of modules: a switch fabric module 5, a management module 6 and line card modules 71 . . . 7n. The functions of the switch are distributed over these different modules with, however, the constraint wherein the line card modules deal at least with the access function, the switch fabric module 5 with the scrambling function and the management module 6 with the management function.
In FIG. 1b, the links 81 . . . 8n existing between each line card module and the scrambling module are called “switch fabric junctions”. Furthermore, each line card module implements an access function capable of managing one or more ports. When a cell goes through a switch, it begins by crossing a first line card called an input line card for the cell and then a second line card called an output line card. Since several input line cards may simultaneously send cells towards one and the same output line card, there may be congestion in the cells owing to the limited output bit rate of this output line card. Mechanisms for storing the cells and placing them in queues are then activated, pending the clearing of the congestion. These storage mechanisms may be found at the input or the output, in the switch fabric or in several of these elements at the same time. The term used is then architecture with “storage at input”, “storage at output”, etc.
The users of a communications network may envisage several modes of exchange of their data elements. These data elements are shown schematically in FIGS. 2a to 2f. The point-to-point mode shown in FIG. 2a links up two users A, D exclusively. Each of them may be a transmitter and a receiver. In this mode, all that is sent by one of the users is received by the other user. One variant of the point-to-point mode can specialize the sender and receiver roles of each of the two users (one-way point-to-point communications).
The point-to-multipoint mode (FIG. 2b) links up more than two users, A, C, D, one of whom is exclusively a sender while the others are exclusively receivers. All that has is sent by the sender is received by all the receivers.
The multipoint-to-point mode (FIG. 2c) also links up more than two users A, B, C one of whom is exclusively a receiver while the others are exclusively senders. All that has sent by one of the senders is received by the receiver.
Finally, the multipoint-to-multipoint mode (FIG. 2d) links up at least two users A, B, C, D each capable of being a sender and a receiver. In this last-named mode, all that has been sent by any one of the users is received by all the other users and also by the sender.
The multipoint-to-multipoint communications and the point-to-multipoint communications are especially natural in the case of a shared medium communications network such as the Ethernet network shown schematically in FIG. 2e. Indeed, in this case, all the users are connected to a single medium and all the connected stations A, B, C, D connected to this medium receive all the messages sent by the other stations. On the contrary, in the case of an ATM network as shown schematically in FIG. 2f, the distribution, to several addressees A, B, C, D, of a cell sent by one of the users requires that the network should itself generate copies of the cell in question.
The term ‘connection’ is applied to any communication according to one of the modes defined here above, between a well-defined set of users, this communication being endowed with a specific list of attributes such as: service quality parameters, traffic parameters, etc.
The implementation, within an ATM network, of communications in the different modes defined here above may be seen from several points of view, in particular signalling, routing, conveying of data elements and management of resources.
With regard to point-to-point connections, the signalling and routing aspects are extensively described in the documents ([UIT-T Q.2931], [AF-SIG 4.0], [AF-PNNI1.0], [AF-IISP]) of the standard-setting literature.
These aspects include the determining, in the network, of a path between the two users such that this path meets the constraints of service quality and traffic of the connection. The path is formed by a list of arteries. Each switch of the path assigns the connection a logic channel number pertaining to the input artery of the connection into the switch and maintains a translation table which, for this identifier, obtains a correspondence between the outgoing direction that the cell must take and the logic channel identifier of the connection in the next switch. Thus, every cell of the connection may be routed from one point to the next solely by consulting the logic channel identifier present in the cell header and the local translation table.
In a distributed architecture switch, such as the one of FIG. 1b, this translation can be done by the ATM layer function of the input line card. The cell is then handed over to the switch fabric module with an indication of the output switch fabric junction towards which the switch fabric must switch the cell. This indication may be conveyed by a specific header added to the beginning of the cell. Translation devices in accordance with this example have been described by the Applicant, for example in the French patent applications Nos. 2 670 972, 2 681 164, 2 726 669, and the as yet unpublished patent application FR 97 07355.
With regard to the resource management aspect, several cases are possible depending on the service category of the connection.
The real-time flows, namely the CBR and VBRrt connections, are subjected to a preventive reservation of resources. The probability of congestion of an output line card because of real-time flows is therefore low. Thus, it is generally not necessary to plan for storage memories at input. By contrast, a small-sized output storage memory is necessary to absorb cells coming simultaneously from several entries.
The non-real-time flows with guarantee of service quality, namely the VBRnrt or ABR connections, can be subjected to certain measures of preventive reservation, but these measures are insufficient given the highly sporadic nature of the VBRnrt sources and the tendency of the ABR sources to occupy the entire available bandwidth. For these flows, it is therefore necessary to provide for temporary storage memories, given that this type of flow, by its statistical nature for the VBRnrt connections or by its end-to-end flow control for the ABR connections, ensures that the total bit rate of the sources remains on an average smaller than or equal to the available bit rate.
For the non-real time flows without guarantee of service quality, namely the UBR connections, no preventive mechanism is possible. It is therefore necessary to provide also for storage memories and share this space between the different connections in preventing one connection from taking up too much available space (in accordance with the notion of fairness). It is also necessary to prevent a situation where the processing of the UBR connections could hamper the running of flows with guaranteed service quality.
This last-named point acquires all its importance through the fact that most of the existing ATM switches set up a pooling of resources between all types of flows. This is especially true with respect to scrambling capacities. However, it is also the case with storage capacities for it is not advantageous to segment the available memory as a function of the service category. It is therefore up to the switch to implement a flow control mechanism making it possible to prevent any congestion downline (the output line card applies retroactive rules to the input line cards to regulate their bit rate). This mechanism that should not hamper the flows with guaranteed service quality. Furthermore, since this mechanism tends to shift the downline congestion upline, it is up to the traffic management function, which is a sub-function of the ATM layer function, to reject cells that violate the policy upline storage resources allocation.
The French patent application No. 2 740 283 on behalf of the present Applicant presents an example of a flow control mechanism of this kind in FIG. 1. With this basic mechanism, there are often associated complementary mechanisms for the elimination of “head-of-line blocking” based on specific queues in the input memory as a function of the outgoing junction. In practice, these mechanisms prove to be almost indispensable with regard to guaranteed service quality flows. Various examples of such mechanisms are presented and referred to in M. HYOJEONG SONG, “A simple and fast scheduler for input queued ATM switches”, in HPC ASIA 97.
Symbolically, the point-to-multipoint connections may be represented by a “tree” with a “root” representing the sender user and its “leaves” representing the receiver users. The implementation of connections of this type is standardized as regards signalling and the routing. What has to be done simply is to form a point-to-multipoint connection by creating first of all a point-to-point connection and then grafting new leaves on it. This addition of leaves may be done at the initiative of the root or else of the leaf.
With regard to the conveyance of the cells, the point-to-point connection model, namely the input translation alone, cannot always be applied. FIG. 3a, where the elements similar to those of FIG. 1b are identified with the same references, shows a point-to-multipoint connection. This connection enters the switch by a port P1 and exits therefrom by the ports P2, P4, P5, P7. In this case, the input translation envisaged further above may order the switch fabric 5 to copy each cell of this connection into the three switch fabric junctions (73, 74, 7n) concerned but it is not capable of indicating the output ports to which the cell must be sent. To do so, it is necessary to add this information into the translation tables and send it from the input up to the output. Furthermore, the output logic channel depends on each output port and it is not possible to assign a single logic channel to all the outputs.
For these reasons, it is generally preferred to make a twofold translation: an input translation which replaces the logic channel of the cell by a <<broadcasting index >> representing the connection within the switch, and then a second output translation which expresses the broadcasting index into a list of pairs of the form ‘port, logic channel’ with the copies that may be necessary.
With regard to the management of resources for the non-real-time flows, on the contrary, it is difficult to hope for a simple extension of mechanisms for the control of flows implemented for the point-to-point connections. Indeed, the head-of-line blocking mechanisms, making use of queues specific to each output, would dictate the management of as many queues as there are possible sets of outputs, namely 2N—1 in the case of N switch fabric junctions.
Another solution may include, for example, making as many copies of each cell in the input line card as there are output line cards concerned by this cell. This approach would have the unacceptable drawback of requiring N switch fabric cycles to transmit a cell to N output junctions, while the technology of the switch fabric generally enables the transfer of the cell towards N outputs in a single cycle.
By contrast, the French patent application No. 2 740 283 referred here above describes a single solution based on the local conversion of the different point-to-multipoint UBR/ABR flows into a single point-to-multipoint CBR flow by separating the transmissions and letting them through one by one from the input line card to the switch fabric and by means of an outright fixed-value reservation of the resources on all the output ports, the reservation level being fixed according to the bit rate dictated by a separating device known as a shaper.
However, this approach has drawbacks when the output ports have bit rates that are very different from one another. This is easily the case in an ATM switch where 25 Mbit/s ports can coexist with 622 Mbit/s ports. Indeed, in this case, it will be necessary to adjust the bit rate of the shaper on the basis of the bit rate of the port with the smallest bit rate. Since all the ABR/UBR connections use the same shaper, the result thereof is a choking of all the connections, even of the connections that take only high bit rate output ports.
The multipoint-to-point and multipoint-to-multipoint connections are not presently being processed in the standardization units that deal with the ATM. There is therefore, for the time being, no signalling or routing defined for this type of connection.
In terms of the conveyance of the cells, any topology of communication leading data elements of different geographical origins to converge on one and the same link raises what is called the problem of the ‘interlacing of PDU (protocol data unit) application frames’. Indeed, since the PDU application frames are segmented by the AAL layer into cells, the cells of different frames reach the addressee in an interlaced from. To reassemble the frames, the addressee should be capable of finding the frame to which each cell belongs. Now the segmenting mechanism most commonly used in the UBR connections, implemented in the AAL 5 adaptation layer, do not enable this identification. It enables only the identification of the last cell of the PDU frame, which is sufficient in point-to-point or point-to-multipoint modes for the ATM cells are transmitted in sequences.
For the switches with centralized architecture or with storage at output, it is possible to be satisfied with an approach that keeps the cells of one and the same PDU frame in the memory, and sends them all together when the PDU frame has been completely received. This is not the case for switches with input storage for the simultaneous access to the switch fabric shared by the different input line cards necessarily introduces another interlacing if the transmission from the different line cards is not coordinated.
Despite all these problems, there are existing needs of communications in multipoint-to-point and multipoint-to-multipoint modes. They could be dealt with in theory by the superimposition of point-to-point communications or point-to-multipoint communications. This case has appeared especially in the context of the emulation of local area networks known as LAN Emulation or LANE (local array network emulation) where any sophisticated mechanism is installed to emulate a shared medium (ELAN) within an ATM network [AF LANE]. An example that may be referred to is that of a server known as a BUS (broadcast or unknown server) which is defined in the LANE standard. This server, whose architecture is shown in FIG. 3b, enables a user to broadcast messages to all the users of an emulated shared medium or towards another user with whom he is not directly connected. Each user of the ELAN has a point-to-point connection towards the BUS server and the BUS server has a point-to-multipoint connection towards all the users of the ELAN, as indicated in FIG. 3b. In the prior art, the broadcasting servers of the BUS server type are implemented either by an expensive dedicated piece of hardware connected somewhere to the ATM network or by a specific process that is executed on the management module of the switch. This last-named approach unfortunately is not greatly extensible when the number of users of the ELAN increases. Indeed, during the period of time when a new user is not known to his partners, the messages that he sends and receives must go through the BUS server. This is often a cause of congestion that may be fatal to the management module.
Another example of a need for multipoint-to-point communications and multipoint-to-multipoint connections is given by the emulation of routing between local area networks. This function in particular may be implemented according to the norm known as MPOA (multiprotocol over ATM) of the ATM Forum which makes it possible to obtain virtual routing between different emulated local networks (ELANs) or different virtual local area networks (VLANs) of an ELAN [AF MPOA]. Another way of obtaining the emulation of the routing consists in installing a routing software program in the management unit of the ATM switch. In this context, a virtual router can be likened a user of the different ELANs that it interconnects. On this basis, it must house a function, known as a LEC (LAN emulation client) for each ELAN. The virtual router must be implemented in a switch, for example by a specific process that is executed in the management module. This entails the risk of causing congestion in said module when the exchanges between the ELANs reach a sufficiently sustained level.